Double error correcting system



Dec. 29, 1964 N. M. ABRAMSON 3,163,848

DOUBLE ERROR CORRECTING SYSTEM Filed 1959 '7 Sheets-Sheet 1 i T I i l GATE g p I I REGTsTm E I I W GATE souRGE UNIT 21 m-SEOUENCE GENERATOR 20 REG F|G GENERATOR REGSTER i 581 533 I 55 I DOUBLE REcEPnoR T ERROR PARITY BIT ERROR uoumgR REGISTER DETEGToR GATE 52 59 UNIT mm 36 I GNUELXT0R T F LOCATOR usEouERcE GENERATOR 51 1 v k DATA SHIFT ERROR 13 REGTsTER common ALL CHECK 54 REGISTER L J P2 P3 P4 P0 FIG, 1 A INVENTOR NORMAN M. ABRAMSON BY J ATTORNEY P4 X X X X X X Dec. 29, 1964 M. ABRAMSON 3,163,848

DOUBLE ERROR CORRECTING SYSTEM Filed Dec. 22, 1959 7 Sheets-Sheet 2 o n R 24 (I: c min /40 AND Aim 2" mo 35 U i i i on 012 e13 014 P. P2 P3 P4 Q AND AND 52 AND 33 AND 54 a h a t J I a j u b it ss\ ,as h 15 19H!) m I 1-1 0 [46 L DE AY AND O I20 23 PULSE GEIERA 25 FIG. 2

Dec. 29, 1964 N. M. ABRAMSON 3,163,343

DOUBLE ERROR CORRECTING SYSTEM Filed Dec. 22, 1959 'YSheets-Sheet s ENCODING or: D D D D D D D D 0 0, 1A0 1 o l o 0 0 mm OUT 3 4B 2 3 4 123'4ss1aeo12s oooooo 7 Sheets-Sheet Dec. 29, 1964 N. M. ABRAMSON nousua ERROR CORRECTING SYSTEM Filed Dec. 22, 1959 20-5 2 em a m w L n o A 2 Q a k w 0 n N is?! 2!: a mafia mm m o vm U 7 Lwwmx r ez H s 8 L V CE Z: q A E2 3 .5 a; 4. A zafi m u cab m m m m A u o u u n u .1 2: L 4 A A g a 5 5 G E 2% r mo nl l o: I e: "6% 2 mm H1 c (5 8 is A t 3 a A A 8 Al 8 1 a N 2 m a: as f e: N a:

g Q m O A. Wall 58% #1 E 5% IE 0 Dec. 29, 1964 N. M. ABRAMSON 3,163,843

DOUBLE ERROR CORRECTING SYSTEM Filed Dec. 22, 1959 7 Sheets-Sheet 5 ozcoomcno ERR0R= P P P P a v o o m n m 0 0 0 041001010100110 q z a Fl 1 2 Dec. 29, 1964 N. M. ABRAMSON 3,163,848

DOUBLE ERROR CORRECTING SYSTEM Filed Dec. 22, 1959 7 Sheets-Sheet 6 P0 P4 P5 P2 P4 D40 D9 D8 D7 Us [)5 D4 D3 D2 D4 D40 [)9 D3 D7 D6 D5 D4 D3 D2 D4 TRUE COHPLEMENT 4F2Fa F1 FaF4P1PzPaP4Po123456789100 FIG. 6

Dec. 29, 1964 N. M. ABRAMSON DOUBLE ERROR CORRECTING SYSTEM 7 Sheets-Sheet '7 Filed Dec. 22, 1959 4 D40 09 De 0? n; 05 04 03 02 n4 1 D40 D9 De D? De D5 D4 D3 D2 D4 1 i P0 P4 P3 P2 P 110i FFFiFFFIPPPP FIG. 7

satisfy its parity check.

United States Patent 3,163,348 DOUBLE ERRGR QQRRECTlNG SYSTEM 7 Norman M. Abramson, Woodsirie, Caiii, assignor to Internatienal Business Maclrhiesforporation, New York, N.Y., a corporation of New York File-d Dec. 2.2, H59, Ser. No. 351,268

13 Claims. (Ci. 34tl-146.l)

This invention relates in general to systems for detecting, locating and correcting errors in a binary code group consisting of parity bits and data bits, and in particular to a system for detecting, locating and correcting two types of related errors in an information code group wherein the bit positions checked by each parity bit are determined in accordance with a systematic arrangement.

Various arrangements have been suggested in the prior art for checking coded information which has been trans These arrangements may be lated between two points. classified generally as either error detecting arrangements or error correcting arrangements.

check arrangement in which a partity bit position is added to the data bit positions of a binary code group. In this An example of an error detecting arrangement is the now well knownparity arrangement the binary value of the parity bit is chosen. a

so that each code group has an even number of binary 1 bits. A similar known arrangement employs the same concept except that the value. of the parity bit is chosen so as to provide an odd numberof-bin'ary 1 bits in each;

code group. Such arrangements are, of course, lirnited to the function of merely. detecting the presence of an odd locate a particular bit position .Whose value has been re-- ceived in error a reception, parity check must be made I 3,163,848 Fiatented Dec. 23;, 1964 Ice in error the locator subword kf-k; (referred to "ming as the parity subgroup) will not be all 0s and, hence,

a single error is'readily detected. The partciular bit position in which the detected error islo cated isindicated by t the condition of the locator subword k The locator Words and 'therespective bit positions which they indicate are in error aretabulated'belowin Table 2 for convenience, and correspond to Table 4 in theabove mentioned reissued patent.

table, is based on the following reasoningand may be construed by'reference to the parity check Table 1'. To

7 over the same selected bit'pb'sition's used inifiitiallydenumber of verrors. They cannot detect an even number of errors, and they cannot locate or correct any errors.

' An example of an error. correcting system known in the I prior art iserepresented' by the system disclosed by Harnming, et al. in U.S. Reissue.23,60l' (US. 2,552,629). The

theory of the Hamming code for single error oorremion maybe readily understood by ananalysis of the so called parity check table. A parity check table corresponding to Table 2 in the above-mentioned reissued patent is reproduced below as Table'l for convenience.

. Table -1- Code Group Position Y.

' Loeator Q i f Parity Bit Subword k1 k2 ks- D -D2 Ds- D4 I 1 k1" X X X X 2 M X X X X 3 k X X 7X X In the example represented bythe above table a code group of seven bit positions is assumed, D D representing-data bit positions, and k k 'representirig parity bit positions. This table is a convenient way to indicate that-f parity bit k checks bit positions of the code group indicated by-a'n X; that is, k checks bit positions 1, 4, 5 and 7; parity bit k checks bit positions 2,4, 6 and 7; and parity bit k checks bit postions 3, 5, 6 and 7, V

When the code group is received some of the bits may be in error. At the receiver three more bits [cf-k (comprising the locat-or subword) are computed. The parity check bit k will be equal to Zero if parity bit of the received code group satisfiesits parity check and equal to sarrie manner.

f the code group of seven bits is translated correctly,

' one itparity, bit k of the .freceivedcode groupdoes not Parity check bits k and k 'j depend on k and k of the received code'group in'the' .79. k 'k will all be 0 assuming an even parity check. However, if one bit of the translated code group is received .001; An er'ror inbitposition4 aiie'cts bothk iiand'k" and hence-the locator subword for an error inthis bit'p'osi". tion becomes 110.. Similar reasoning may be employed to show that single error inbit po'sitions5,.6 and .7.result in -the locator-subword shown, in Table 2. The obtaining.

termining-the valuecf eachparity bit lq-k, a"

rect parity is received over the selected bit positiohs 'a'sso ciatedwith each of the parity bits th'e'slocator'isubword k k' "is all Gs- 'If anerror occurs in-bit position l, in

isgatie'cted. and becomes a 1,while k and k;,' are not affected since these parity "bitsdo not check bit position 1! 2 Hence, the locator subword for an: error bit inbit position 1 is Similarly, the locator 'subword for an, errorin bit position 2 is 0-10, and for an error inbit position-3,-

of ditlerent locator subwords forindicating jthebit' position where "a""single error occurs is the basic conception which the Hammingerrorecorrecting systemis based.

As'explained by Hamming the parity check table foria single error correcting systemsatisfies twogconditions- The first is that each bit position of thecodegrdugizmus't be'in'a 'locator subword. The secondisthat the lojcator' subword k -'k f for each bit must be'diiierent, i In many circumstances position of" the code grotto tions generate seven paritybits. from 1'27 'bit postionswit-h each parity bit checkinga particular group of bit positions in the 127 bit positions, a very complex arrangement for: assigning particular bit positions to a group arises unless; some systematic approach is-followed in the assignment process. Y

In order it is desirable to transmita code.- groupwhich has a relatively large-numberof bit posi-fz- The main reasons for having a large number of bit'positionsis' that the efliciency or" a data transferoperation i greatly-increased. For example, ir 11a" seve,n"bit 1 code group' theratio of redundant data to useful data '5. '3-to-4, while in a code group having 127 bitipositionsitq radio becomes 7-to-l'20. in providing a system that will- 60.

to'simplify the assignmentroperation the prior artiha's' suggested that another conditionbefadded. to the; two conditions set forth lIl-fllfi Hamming reissued 'patenb 'forconstruction of a systematic parity checlg table. 'lhis 5 other condition allows the basic concept of thei'latruning'; parity check table to follow'asystematic' approach when it is extended to code groups hayingfa'.rel aitively large r e 7 number of bit positions. This third condition is illustrated in the parity check table below, Table 3, and may be stated as follows; a series of binary digits, which form the locator subword for any bit position of the code group, define the number of the bit position in the code group when itis considered as a conventional binary number.

Copending application Serial No. 861,267, n'ow Patent No. 3,114,130, filed concurrently herewithcand assigned to the assignee of the present invention, discloses a single error correction system which maintains the advantages of a systematic assignment of the bit positions to be checked by each of the parity bits, while still allowing "T able 3 1 2 s 4 a 6 7 s 9 11 i2 13 14 Parity Bits Binary Order D1 D2 D3 D4 D5 D0 D7 D3 D0 Du D11 P4 P3 P2 P1 X 1 X 2 X 4 X 8 binary equivalent of that position; For example, the 0 loc'ator subword for bit position 5 is 1010,'and the locator the data bits and the parity bits tocbe transmitted in their proper order. The concept underlying that system may be seen by reference to the parity check table below, designated Table 4. V r

Table 4 1 2 3 5' e 7 s 9 10 11 12 la 14" 15;

D1 D2 D3 D4. D5 5 D1 D8 D9 D10 D11 P1 P2 P3 P4:

'P1 X X X X r X X X X P2 X X X X X X X ,X P3 X X x X X X- y X X P4 X X X X X X X X subword for bit position-13 is 1011, which(when readfrom left to right) are the binary equivalents of 5 and 13, respectively. Following a systematic approach "in the construction'of'the'paritycheck table results in a simplific'ation of the parity bitassignment process in that a" conventional binary counter may be employed in the system for generating grating signals, which allow apar ticular group of bit positions to-be checked by therespective parity bits. In the example above it will be seen that the parity bit P is assigned to check the group of bit" positionsconsisting. of D D D D D ,.D P I and P The output signalfrorn the first stage of the. i. 5

conventional four stage binary counter would'provide the necessary gating signals'toallow the appropriate bit positions" to be checked by. parity bit P Similarly, the outputsignal of the second, third and fourth stages-would. provide the correct gatingsignals to allow the'appropriate bit positions to be checked by parity bits P g P5, and P respectively. i

While systematizing the parity check table in the above 1 described manner results in simplification of. the parity bit assignment process it creates the need foradditional circuitry'in' that at least one .of the particular parity bits also. checks a bit position ofthe-code' groupwhichccontains another parity bit at a time when the condition of 7 the parity bit to be checkedxis not final. For example, in the systemized parity check table above the group of parity bits checked by P include parity bit positions-l3 and 15 of the'code group which are reserved for parity bits-P and P However, if the code grou p is to be transmitted .in a serial by bit fashion, P cannot be transv mitted in its proper sequence, since its final value cannot be determined until P is determined. It can be shown that systemizing the parity check tablelin accordance with.

the above described process preventsthe transmission-of:

the data bits and; the parity bits in a natural occurring sequence. Stated'somewhat dilferently, single error correcting systems knownin the priorart cannotlachieve the simplicity of circuitry obtained by systemizing the assignment of the bit positions to be checked, and at" the 1 same time, maintain the simple circuitry obtained under" the conditions where the assignment process is not systerniz'ed.

In the system disclosed by the above mentioned copending application the bit positions to be'checked by'parity 7 bit P are determined in accordance with an m-sequence.

defined by the output; signal of one stage of a maximal length binary shift register having R stages. 'An m-se- 7 digits arranged in t a predetermined vorder quence satisfies the condition that: j

where 2 1 is the number of binary digits in thesequenee before it repeats itself and the symbol a is employed to designate the value of the first binary digit in the sequence; a the value ,ofthe secondary binary digit the sequence;-a the;value of the third binary digit-in the sequence; etc. The above equation may also be expressed as: l

. determined from reference tablesreferr'ed to as a Table of Irreducible P0lynominals:-.Over Galois 'Field (2) Through Degree 19, by R. W. Marsh, a publication of -the National Security Agency, dated October 24, 1957.

of the maximal length binary shift register.

The number of difi'erent m-sequences that are-obtained from an R stage maximal length binary shift "register -is tabluated below:

The number of ditferent rn-sequences obtained from; an R-stage m-sequence generator also corresponds to the number, of diiferent groups of coefficients'C C which are available for Iii-sequences;

The term m-sequence is known in the art and may be] t+ia= 1 t+ 2 t+1+ s z+rb -1 in wnn l i where C -C eachrepresentja binary coe'fiicient 0 or Coefiicients (l -C in efiectdetermine the feedback path Numberof stagesr R=2 a 4's 6' s 9 1p I Ditferent ll-sequences 12 2 6 6'18 16 48 With relation to the general Equation l'for an m-sequence, the first sequence shown above is expressed spe cifically as a =rz +a uage this specific equation expresses the fact that the value of the fifth binary digit (a )=the mod. 2 sum of the values of the first binary digit (a and second binary digit (a- Q For example, the fifth digit in the m-sequence (l) is obtained by binary addition (mod. 2) of the first digit 1) and the second digit (0). The following digits of the m-sequence are obtained in the same manner until 2 -1 (15) digits are obtained. The m-sequence then repeats itself.

The second rn-sequence is obtained in a'sirnilar manner, but since the co'etficients C -C are difierent; 1001, the specific equation becomes a 4=d +a In otherwords the value of the first digit plus the value of the fourth digit will give thevalue ofthe fifth digit.

Referring again to Table 4, which is thefparity chec table employed in connection'with the single error cor rection system disclosed the above mentioned copending application, if an X is replaced by a l and a blank by a 0 in each of the rows 1 -11 of the table, it will be seen that the sequences of 0s and 1 follow the Iii-sequence defined line 7, column 5, where coefficient C -C correspond to 1001. The row designated P in Table 4 corresponds exactly to the rn-sequence in line 9,

page 8. The succeeding rows are merely shifted one 1 position to the right. The output signals of the first stage of a four-stage maximal length binary shift register would provide the necessary gating. signals .toallow the appro priate bit positions to be checked ,by P Similary, the second, third and fourth stages of the shift register. would provide the'necessary gating signals to allow the appro priate bit positions to be checked by paritiy bits P and P respectively. i

The assignment of the bit positions to be checked by each parity bit follows a systematic approach, and hence the assignment operation is readily implemented in the error correcting system. In addition, since each ofthe parity bits are in a final state at the time they are to be transmitted the parity bits may be transmitted sequential- 1y following the data bits'in a serial by bit fashion Without interruption. V r

However, the system disclosed in the above mentioned In the nonmathernatical langsubwordconsisting of k 'k paritycheclebitsp-lffthe;

The parity check table shown in Table 5 is identical to the parity check table shown in Table 1, except for the addition of an eighthbit position to the code group, and the k.; parity bit. Parity bits k k and k check the same I bit positions as in Table l. The k parity bit referred to as the fall check parity bit checks each of the eight bit positions. i

The locator subwords (which correspond to Hainmi'ngs parity subgroups) for errors in particular bit positions are tabulated below in Table 6, and correspond to Table 6 of the reissued patent.

*1, 2 or all of k1, is} and k will have a 1 value.

If there are no errors in a code group" afte'r'it is translated, all of the parity bits k le; will be satisfied andthe locator subword will be 0000.] When a; singleerror occurs in any :bit position of the code group two sepa rate indications are-obtained. First, the all-check parity bit k will not be satisfied, and therefore 16; becomes'a 1 indicating a single error. Second, the k -k parity bits of -the locator subwor'dwill indicate the location of. the single error, the -000value of k '+k now indica'tiiigan errorjn-the eighthbit" positionof the code o'up. If

:on the other handgjtwo errorsjhave occurredthexall check-parity bit krissat isfieibut at'lea'stone of the parity bits k k lor kywill not be satisfied; Stated somewhat differently, it can be determined by reference to Table 4,

if e. single'error has been made bylooking atithe locato'r locator subword is not all Osa single or double error. may be assumed; If the k parity check bit'is a 1, this indicates asingle error, and parity check bits k k 'in'- dicate the bit position in the'co'de groupwhere the single error has occurred. If, on the other hand, parity check bit k is 0 and one or more of the parity check b-its' k "-k are '1, this indicates that two errors have been made, but no" i information is available from the locator subword table as to the location of the two errors. This system is therefore copending application is limited to the correction of a.

single error in a code group. It cannot detect or correct errors which occur in more than one bit position of; the code group..' i v v v I Whilethe Hamming reissued patent mentioned pre Viously discloses a system which corrects singleerrors and detects double errors, it has the sarnedisadvantages-as the similar single error correcting system; The parity check table for the Hamming system WhiChfCOlTBCfS single errors and detect double errors is shown in Table below.

positions consisting of four parity bitfpositions and three Parity Bit referred to as a single error correcting-double error detecting system (SEC-DEB).

It cannot correct double adjacent errors.

The present invention discloses an arrangement for{ correcting both single errors and double adjacent errors The'conccptv underlying the present inventionfrnay -bef, seen .by reference to the parity check; table, shown be-- low as Table'7, employing acode. group ofseven bitj data bit positions. V Table 7 f Code Group'Position Q Locator i 1. i Subword D1 a D; 1 1'" Pa 'To i The main distinguishing feature between the Abramson parity check table, as shown-in Table 7, and the parity check table disclosed by Hamming (Table is that the bit, positions checked by each parity bit k -k in the Hamming tableare arranged arbitrarily, while in the present invention the bit positions checked by a parity bit are'determined under the control of an Iii-sequence, specifieally in accordance with the complement of the m-sequence. The. bit positions checked by parity bit P in the present arrangement are shown. below in Table .8

7 The locator subwords for doubleadjacent'errors have been obtained by binary addition. of the locator subwords for single errors in the afiected bit positions. For example, the locator subword for a double adjacent error in bit positions 1 and 2 is 010, obtained by adding modulo 2, the locator subword for a single error in bit position 1, (100.), to the locator subword for a single error in bit position 2 (110). The complement of the locator subword for a double adjacent error in bit positions 1 and 2 is there-- fore .101. Table 9 shows that the complement of each locator subword for a double adjacent error corresponds to the locator subword for a single error starting in another bit position.

For example, a single error in bit position 2 has the locator'subword 110 (P P and P The complement of the locator subword generated by a double adjacent error in bit positions 6 and 7 is also110. This 7 is a shift of fourpositions, between the two columns 3 and in relation to the m-sequence (for a three-stage m.-sequence generator, and also in relation to the complement of the true m-sequence.

Table 8 1 2 s 4 5 6 7 Bit position D1 D2 Di P1 P2 P3 0 P1 x X o 'X o o 0 m-sequence for R=3 0 0 1 '0 1 1 1 complemented m-sequence. 1 1 0 1 O O 0 It will be noted that parity bit P checks that bitpositions indicated by thebinary 1 bits of the complemented m-sequence in the last line. It willalso be noted from 'Table 7 that parity bit P checks bit positions-corresponding to the same complemented m sequence shifted to the right by 'onepositi'on relative to-parity bit P and that P checks bits positions corresponding to the same; coinple: mented m-sequence shifted to the right by one bit position relative to parity bit P 1 v The '-fact thatthe bit positions checked follow an inversem-sequence resultsin a systematic assignment of the bit positions to be checked by each parity-bit and hence a fairly simple error correction system is provided. In addition to this simplification of the system the arrangement of the parity check table allows correction of double adjacent errors'in that errors in successive 'pairs'of bit positions (1 and 2, .2 and 3 3 and 4, etc.) cause a group of locator subwords V to. be" generated whose complements correspond to the complemented m-sequence shifted a fixed amount relative tothecondition of the original cornplemented m-sequence. This is shown in Table 9below.

- Table 9 1.05m Subword Error Complement of True in Bit Position True M- sequence v M-Sequence Locator Subword Error in Bit Complement of Locator Subwords osition' for 11 Type Error 5.. It can be shown that the four positional shift relationship is maintained for all the bit positions of the code group and this maybe verified by Table 9. Since the locator subwordtables for both single and double adjacent errors are related, they may be generated quite simply by the same maximallength binaryshift register. v I

In' accordance. with. the present. invention the improved error'corrccting system comprises an encoder and a de-' coder which are interconnected by a suitable signal translating means. The encoder. comprises generally means for generating a plurality of parity bits from bit positions of the code group which are-selected under the control of an m-sequence generator and an all check parity bit, from each bit position of the code group, and means for controlling the translation of the. parity bits sequentially following the data bits.

The detector comprises generally means for generating a plurality of reception paritybits from bit positions of the code group which are selected under the control of an m-sequence generatorand' an all check parityv bit, from each bit position of the code group, means responsive to the generated reception parity bits for detecting if an" error occurred, 1neans responsive to the all check: parity bit fordeterrnining the type of error, means under the control of the generated parity bits and the all check parity bit for locating thedetected errorand means under the control of thelocating means and the all check paritybit for correcting the error. 7 V

It is therefore an object of the present invention to provide an improved system a binary code group.

data'bit positions and parity bit positions. I

A further object ofthe present invention is to provide a single and double error correcting system in whichthe bit positions of the code group to be checked by each of the paritybits are assigned syste with a complemented rn-sequence.

The foregoing and other objects, features and advantages of theinvention will be apparent from thefollowing more particular description of a preferredembodiment of the invention, as illustrated in the accompanying drawings.

In the drawings:

FIG., 1 is a bl ock diagra'niiof errorcorrecting system I embodying the present invention; V FIG. 1A is a parity check table, for the fifteen bit code groupemployed in the illustrated example. Y

a FIG. 2 is a diagrammatic view block form in FIG. 1;

FIG. 3 is a chart illustrating the operation oftheen- V coder shown in FIGIZ;

FIG. 4 is a diagrammatic view of the decoder shownin block form inF-IG. 1; t T a I for correcting multiple errors in Another'object of the present invention is to provide a T system which is operable to correct'either single or double l adjacent errors in a transmittedcode group consisting of matically in accordance of the encoder showniin The above operation continues in a similar manner until the data bit position D D .have been checked for parity.

Clock pulses Gil-C14 applied to input taps a of AND gates 40-43, respectively, cause parityt bits P P to be supplied to the data-out line 13 through QR gate/35 and AND gate 35- Since parity bit positions P 'check the bit position of the code group assigned to parity bit P parity bit P is also supplied to gate unit 21 during clock time C11. Similarly, since parity bit'P checks all the bit positions, the parity bits P R; are supplied to the P stage 23. and also to gate unit 21. The ten data bits D D and the five parity bits P P as shown on the last line of FIG. 3, are translated to the decoder 12 by the signal translating meanslS.

Referring again to FIG, 1, the 'decoder12 as shown therein comprises a shift register 50, an m-sequence generator 51, a gate unit 52, a reception parity bit register 53, an all check reception parity bit stage 54, an error detector .unit 55, an error locator unit 56, an error corrector unit 57, and means 58 for modifying the'condition of the m-sequen ce generator 51, and the reception parity bit register 53 under the joint control of the error detector 55, and the, all check reception parity bitstage S4, A pulse generator 59 is also provided for supplying appropriate pulses to shift register 50, the m-sequencetg'enerator 51, and the error Corrector unit 57.

V. Shift register '50 functions .to store the first ten data bits of, the code group supplied to the decoder 12. 1 Gate unit 52' functions to assign the bit position of the fifteen bitcode group to be checked to the various stages of the reception parity bit register 53 so that a reception parity check is made by register 53 over the entire code group 7 in accordance with the manner in which the parity bits' were generated.- The all check register 54 functions to:

make a reception parity check over each of the bit posi- 'tions ofthe codegtoup. Error detector 55'functionsto provide an error signal when the generated reception parity bits RP -RP are not all 0s. The allfcheck parity bit register 54 functions to indicatethettype of error,

state of register 55 andthe; starting position of the msequence generator 51 if a doubletadjacent error has occurred. The error locator 56 functions to provide a Sigrial. to the corrector unit 57when the state of thelrn-sequence generator '51 and the reception parity bit register 53 indicate that the, bit position Where the error begins isthe corrector unit. The corrector unit 57 'functions to' complement the binary value of thebit (or bits) which;

is in error in response to the signal from the error locator,

and inaccordance with thetype of error indicated by t e all check parity register 54. v

12 -M-sequence generator 51, gate unit 52, receptionparity bit register 53 and'the all check parity bit register 54 are identical to the m-sequence generator 20, gate unit 21, parity bit register 22 and all check register 23; respectively, of the encoder 11, and hence the detailed. description of these units is not repeated here. Generally, m-sequence generator 51 supplies four sampling signals to the ,four AND gates 6669 of gate unit 52 so that theappropriate bit positions of the received code group are checked. The output taps c of AND gates 66-69 are connected to the stages RP RP of the reception parity bit register 52. A reception parity check of'each bitposition of the code group is therefore obtained by the reception' parity bit register 53 and the all check register 54. The error detector unit 55 comprises a four terminal OR circuit/7t), an inverter 71, a pair of AND gates 72 and 1 73,?and an error trigger 74.' The four input taps 'a d of OR circuit J70 are connected to the respective output taps b of stages RP RH of register 53. Output tap e of OR .circuit 76 is connected to the input tap a of error trigger 74 through inverter '71 and AND gate 72, and also to i input tap ,b of trigger 74 through AND gate 73. Taps b cuit Sit-which has'its output tap e -connectedto the invert- 'e.g., single'or double adjacent error, was tomodify the i verter 81 1 unit, 57.

of AND gates 72 and 73 are connected to the pulse gen- I erator 59 and are supplied with an S15 pulse. 7 Theerror locator Seas shown comprises four. exclusive OR'circuits 76-79, aifour input OR circuit 80, and .an .inverter sl- Theexclusive OR circuits 7649 haveone ,input tap a connectedato the output taps b of stages RP RP respectively, of register 53, and input taps b connected to output taps d of stages F -F of m-se'quence generator 51. The output taps' cof the'exclusive OR} circuits id-W are connected to input taps a-dof ORcirer SL' The output signal of inverterslis normally low until the state of the an-sequence generator-"flandthe reception parity bit register SS coincide, at which time insupplies a compare signal to the error corrector The error Corrector unitf57 inthis instance comprises AND gates 82 and 83. AND gate 82 has an input tap a connected to errorttap c of error'triggerfl'd, and'an in Qput tap b connected to the output tap of the error locator j 56. 'AND gate 83 has its input taps a and b connected in The details of the decoder 12 are shown in FIG. 4, and as shown thereinshift register 50 comprises ten stages.

rl-dt). Data is supplied to the first stage 1 from-the signal;

translating means 13 through a pair of serially connected .The output tap d of AND gate 60is connected to gate u'nit52, to inputtap a of ANDYgate 6 1, and toith e input .7 7 tap aof stage RP 'of the all check'par'ity -bit register 54;"

Theinput tap bof'AND gate filistconnected to thefpt llse generator 59 and is supplied with clock pulses. (11:010.

1 Output tap efof AND gate 61 is connected to the input taper stage l ofjshift"register- 50, and hence shift register with the-ten' d'ata bitsf t parity bit'RP i e V At the end of the reception parity chech cyclefleach stage RP RP of register '53 is 0, and the output signal Ice a similar manner, but is provided with another 'input tap c, which is connetced to the output of the all check registert54. The output taps 3 of AND gates 82 and 83; are

' connected to stage C and stage 10, respectively, so as to complement the condition of these stages and correct the binary valuelocated therein at the appropriate. time when an error has occurred. 7 I The operation of the decoder when no erl or'pccurs in translation ofthe code group may be seen-by referenceto vi FIG. 5, which is a chart illustrating the decoding of the fifteen bit'code group transmitted by the encoder-11.7 A s,- surning error trigger 74 is setso that the'no error tap d is"l1igh, conditioning AND gate 60, the ,fifteenibit code,

group is supplied to AND gate 61, the all check register 54, and the gate unit 52. The first ten data bits D +Dm I are entered into shift register 50 through AND gate 61 flunder the control of'clock pulses C1.C10,;and shifted from left to rightunderthe controllof shift pulses S1 is supplied ivith the first ten data bits'of the code group, a a r {while gate un'itl 52 and all' check Iregister 5 4. are Ssupplied ",-D andithe jfiv'e parity bits" sl-tl applied to each of the stages; M-sequence generator Siprovides theseries 0t gating signals shown in column 5 g to condition gate unit 52, and allow :reception parityt checksto be made over the appropriate bit positions of thefifteen biticode group, All check register 541operates ,in'allsimiia rmannerto generate an all check reception from OR circuit 78 is low, AND gate 72 of the error detector 55 is therefore conditioned thefsignal being I 13 inverted. Shift pulsesSlS applied to input tap a of AND gate 72 therefore supplies a signal to input tap a of error trigger 74. However, since the trigger is in the no error condition the pulse supplied to tap a does not cause trig ger 74 to change states. The cycle is then repeated for the next code group with data bits D D b of the first code group being shifted out to a suitable utilization device.

The operation of the decoder 12 in correcting a single error Which has occurred duringtranslation from the encoder may be seen by reference to PEG. 6 which assumes that the error has occurred in the sixth bit position or" the code group, that is, data bit D is changed from a 1 to a 0.

FIG. 6 is a chart similar to FIG. 5. As shown in FIG. 6 the operation of the decoder is identical to that which was just described up to the time that D; of the code group is supplied to gate unit51. M-sequence generator 5% provides the same group of gating signals to gate unit 51 as in FIG. 5. However, since an error is present in the translated code group as received, the state of the reception parity bit register 53 at the end of the cycle is not all Us As shown in the chart of FIG. 6, register 53 assumes a 1001 conditiomand the all check register54 assumes a 1 condition. If the parity check table of FIG. 1A is consulted, it will be seen that condition 1001 is the locator subword for an error in the sixth bit positionof the code group. a

With 1001 in register 53, the output of OR circuit 70 is high, conditioning AND gate 73 so that the S15 pulse applied to tap b causes a signal to be supplied to tab 12 of error trigger 74, resulting in a change of states. The normally high no-error tap d of trigger 74 therefore changes to a low state, while the normally low error tap 0 changes to a high state and conditions AND gates 82, 83 and 84. v I

The input AND gate 60 is deconditioned by the drop of the no-error input tap d, and, hence, no data is supplied to either the shift register'50, the gate unit 52 or the all 7 check register 54 until the error is'located and corrected.

The reception parity bit register 53 therefore maintains its 1001 condition until the error is located. However, shift pulses S1-S15, supplied to the m-sequence generator 51 cause it to cycle, While shift pulses S1S10 supplied to the shift register 50 cause the group of data bits D D stored in the shift register, to be shifted out through stage C of the error correcting unit 57. It will be seen from the lower portion of FIG. 6 that the condition of the m-sequence generator 51 and the reception parity bit reg ister 53coincide at shift pulse time S6. It should also be noted that at shift pulse time S6, the sixth position of the code group which contains the bit in error has been shifted into stage C of corrector unit 57.

Since AND gate 82 has been conditioned by the error signal from error trigger 74 at S15 time, the. F-RP corna paresignal from theerror locator 56 at shift time S6 is supplied to stage C through AND gate 84'as a correctcornmand signal. The correct-command 7 signal causes the condition of stage C to reverse which, in efiect, complements or corrects the value of the data bit presently-in stage C. As'shown in FIG. 6, the error in bit position 6 consisting of a 0 is corrected by changing it to a 1. The corrected data D and subsequent bits D D are shifted out of the register through stage C to a suitable utilization device.

The reception parity bit register 52 in this instance is reset to the all 0 condition by the F-RP signal from the error locator 56 so that when the next S pulse is supplied to the error detector 55, a signal is supplied to terminal a'of the error trigger 74 through AND gate 72, which is conditioned bythe inverted normally low output signal of OR gate 7th The signal supplied to terminal a of error trigger 74 causes'the trigger to change states and restore the decoder to its original startingcondition. The:

smarts l4 decoder will operate in the above describ correct automatically at single error occurring in any of the data bit positions Il -D y i The operation of the'decoder 12 in correcting a double adjacent error which has occurred during translation.

from the encoder may be seenby reference to FIG. 7,

which assumes that the double adjacent error has occurred V in the seventh and eighth positions of the code group, that is, data bits l'Dq and D are changed from 0 and 1 to 1 and 0, respectively.

FIG. 7 is a chart similar to FIG. 5. As shown the operation 'of the decoder is identical to that described previously upto the time that data bitD- of the code group is supplied to gate unit 51. M-sequence generator 56 provides the same group of gating signals to gate unit' Bias in FIG. 5. However, since a double'adjacent error is present in'the translated code group as received, the

state of thereception parity register 53 at: the end of i the cycle is not all 0s. As shown in the chart of FIG. 7

register 53 assumes a 1010 condition and the all check register 54 assumes a 0 condition including adouble adjacenter'ro'r. V

If the parity check table of FIG. la is consulted, it I will be seen that mod. 2 addition of the. locator subwords' for bit positions 7 and 8result in'the 1010 condition, and that the complement 0101 corresponds to the locator subword .for a single error in hit position 4. The three positional shift between, the complement of the locator subword for a double adjacent error and the locator subword for a singleerror is maintained throughout the table. The three positional shift is characteristic of the particular rn-sequence chosen for the example. Other m-sequences would provide other positional shifts. 7

Since RP 'RP are not all US the ou'tputofOR gate 70 is high, which conditions AND gate 73. A shift pulse S15 supplied to terminal b of AND gate 73 causes error 7 trigger 74 to change states. The drop of the no anon tap d deconditions the input lAND gate 60. The error tap c, on the other hand, conditions AND gate 90 and also AND gates 82, 83 and 84,'as in the case of a single error, Tape of AND gate 90 is supplied with the output signal from the all check register 54, so that when clock pulse C15is supplied to tap a, a signal is supplied from AND gate 90 to each stage RP RP of register 53 and .to' stages f g-F of m-sequence generator 50. The signal supplied to register 53 complements the condition of register 53 sothat in the present example the 1010 condition is changed to a 0101 condition The signal supplied to stages F -F complements the condition of these three stages and changes the 1111 normal start condition to a 1000 start condition. This, in efiect, is equivalent'to starting the m-sequence generator at a point corresponding to the threepoistional shift.

Shift pulses 51-815 supplied to the m-sequence generator 51 cause m-sequence generator 51 to advance. Shift pulses 51-8 10 supplied to the shift register 5t) cause the data to be shifted out through stage C; When thecondition of the reception parity bit register 53 corr responds to the condition of taps d of the m-sequence generator the output tap a of OR gate drops, supplying a correct-command to AND gates 82-through AND gate 83. Since AND gate 33 is now conditioned by-the' output signal from the all check register 54,- the condition of stage 10 and .stage,c are complemented or corrected,

Hence, corrected datais supplied from the decoder.

'The RPF.cornpare signal, as inthe case-ofa single error, resets register 53 to the 0000 condition so that when shift pulse S15. is supplied to AND gate 72, error trig ger 74 is' caused'to return tothe no error condition. The

m-sequence generator 51 is supplied with a signalfrom AND gate 91 at clock pulse, time C0, which insures that ed manner to and scope of the invention.

the 1111 normal start condition is obtained for the neiit cycle. The decoder 12 is thenin position to handle the next code group. v

It will be seen that a relatively simple system is provided for correcting both single and double adjacent errors which occur in binary code groups. While the system I has been explained in the environment ofjdata communications, it will be recognized by those skilled in the art-that other applications are possible. For example, in recording onmagnetic surfaces such astape, which are subject to defects, errors may occur during read-out which, in effect, correspond to the type of error encountered during translation of the code group in communication systems. Hence the. error correcting system of the present invention may also be employed in the environment of a magnetic recording system.

While the invention has been particularly. shown and described with reference to a preferred embodiment thereof, it will be understood by those skilled inthe art that the foregoing and other changes in form and details may be made therein without departing from the spirit What is claimed is: Y

1. In combination with an information handling system having a source of binary codedmulti-bit data signals and a device for utilizing said signals, an error correcting system interconnecting said data source and said utiliZa-' tion device operable to'detect, locate and correct two types of related errors occurring during the translation of said data signals to said device, said correcting system including an encoder, a decoder and signal translating means connected therebetween, said encoder comprising means for supplying to said signal translating means a code group signal consisting of a predetermined number of data bits, a predetermined number of locator parity bits and an errorrtype parityv bit, said supplying means 'includ-s. ing means for generating said locator parity bits from bit positions of said code group signal determined by a coma 'ception parity bit from each bit signal.

from bit positions of the received signal determined by the complement of said msequence, and an error-type reposition of said received 6. The combination recited in claim 5 in which said locator reception parity bit generating means includes an mesequence generating, asampling circuit and a storage register.

7. The combination recited in claim 6 in which said m-sequence generator comprisesa maximal length binary shift register. 7 V

. 8. A system operable to detect, locate and correct two types of related errors. in a transmitted code group of N binary bit positions consisting of K locator parity bits, a single error-type parity bit and data bits where N=2 1 or less comprising in combination an encoder, a, decoder, and means connectedtherebetween for transmitting said code group from said encoder to said decoder, said encoder comprising means for generating K locator parity bits over bit positions of said code group determined in accordance with thecomplement of an msequence, means for generating said error-type parity bit over-each bit position of said code group, and means for.

plemented m-sequence and means for generating said error-type parity bit from each bit position of said code group signal, said decoder comprising means for: generat ing reception parity bits from said code group signal as mented m-sequence, means for generating a reception error-type parity bit, and means under the control of said generated reception parity bits operable to correct any one of said difierent types of related errors in any posireceivedover bit positions determined by saidcompletion of said code group prior to supplying an erroneous data bit to said utilization device. I 2. The combination recited in claim 1 in which said locator parity bit generating means of said encoder comprises a storage register having one stage for each locator parity bit to be generated, a plurality of sampling circuits each having an output terminal connected toa different said stage, means for sequentially supplying bits ofsaid data signal to each of said sampling circuits, and an msequence generator connected to said sampling circuits for supplying trains of sampling signals theretov ccrres ponding to said complemented m-sequence andin timed relationship with thesequence of bits in said data signal. 3. The combination recited in. claim 2 inwhich said error-type parity bit generating means comprises a storage register having one stage, and means for sequentially 1 supplying bits of said data signal to' said one stage.

4.The' combination recited in claim 3 in which said m-sequence. generator comprises a maximal length binary shift register. I V a 5.' The combination recited in claim 1 in which said reception parity bit generating means includes means for generating a plurality oflocator reception parity bits supplying said parity bits to said transmitting means in sequence following the last data bit, said decoder comprising means to receive said transmitted code. group, means for making a reception parity check over bit positions of said received Icode group in accordance with said rn-sequence to provide K locator reception parity bits, and

a single reception error-type parity bit, means under the COHtIOIxOf said reception parity bits for correcting any one of said, related errors which might have cccurredin any bit position'during transmission of said code group between .said encoder and said decoder.

9. The combination recited in claim 8 in which the means for making said reception parity check includes an m-scquence generating means for providing jconiplemerited m-sequence signals. i

10. ,The combination recited in claim 9 in which said m-sequence generating means comprises a K stage shift register; having a feedback path extending to said first stage from other predetermined stages through an exclusive OR circuit. 11. The invention recited in claim 9-in which said correcting means includes means for modifying the condition of said locator reception parity bits and the starting condition of said m-sequence generating means in response to a predetermined condition of said single reception error type parity bit. v 12. In a system for correcting two types of related errors in a translated binary code group, an encoder com- I prising the combination of parity bit generating means including an m-sequence generator, a first gate unit, a parity bit register, and an all check parity bit device; a second gate unit, a pulse generator, means for supplying'a group of serial data bits to said first gate unit and said. all check device under the control of timing signals from said pulse generator, means'connecting said'pulse generator to said ii -sequence generator to advance said sequence generator in timed relation with said timing signals, means connecting the output of said sequence generator to said gate unit for selectively conditioning said gate unit, means connecting the output of said gate unit to said parity bit registerfor storing the modulo 2 sum of the output signals of said first gate unit, means connecting the output of said parity bit registerto'said second gateunit, means connecting the output of said second gate unit 'to said first gate unit and said all check parity device, and means connecting said pulse generator to said second gate unit to sample said register and said device "at preselected times whereby said sequentialgronp ofdata bits translated to 18 7 said decoder are followed immediately by a sequential References Cited in the file of this patent group of parity bits.

13. The combination recited in claim 12 further com- UNITED STATES PATENTS 1 prising signal translating means interconnecting said de- 2,552,629 Hammmg y 15, 1951 coder and said encoder, said decoder comprising means 5 2,956,124 Hagelbargel 1960 corresponding to said parity bit generating means of said 219691912 Reynolds 1961 encoder for generating reception parity bits, means re- FOREIGN PATENTS spon ive 'to said generated reception parity bits for indi- 211,165 Australia Oct 24, 1957 cating the occurrence of an error, means responsive to one of said parity bits for indicating the type of said error, 10 OTHER REFERENCES means for locating said indicated error in response to the J. H. Green, Jr. and R. L. San Soucie: An Errorcondition of said other reception parity bits, and means Correcting E c d and 13660461 Of High Efficiency, under the control of said error locating means and said Proceedings of the PP. 1741-1744, October 1958- one Parity bi f corretcing i I.R.E. Transactions on Vehicular Communication, 7 5 April 1959, pp. 74-85, by Green and Gordon: A Digital Selective Signaling System for Mobile Radio. 

1. IN COMBINATION WITH AN INFORMATION HANDLING SYSTEM HAVING A SOURCE OF BINARY CODED MULTI-BIT DATA SIGNALS AND DEVICE FOR UTILIZING SAID SIGNALS, AN ERROR CORRECTING SYSTEM INTERCONNECTING SAID DATA SOURCE AND SAID UTILIZATION DEVICE OPERABLE TO DETECT, LOCATE AND CORRECT TWO TYPES OF RELATED ERRORS OCCURING DURING THE TRANSLATION OF SAID DATA SIGNALS TO SAID DEVICE, SAID CORRECTING SYSTEM INCLUDING AN ENCODER, A DECODER AND SIGNAL TRANSLATIANG MEANS CONNECTED THEREBETWEEN, SAID ENCODER COMPRISING MEANS FOR SUPPLYING TO SAID SIGNAL TRANSLATING MEANS A CODE GROUP SIGNAL CONSISTING OF A PREDETERMINED NUMBER OF DATA BITS, A PREDETERMINED NUMBER OF LOCATOR PARITY BITS AND AN ERROR-TYPE PARITY BIT, SAID SUPPLYING MEANS INCLUDING MEANS FOR GENERATING SAID LOCATOR PARITY BITS FROM BIT 